Synchronous dynamic random access memory (SDRAM) devices are various types of dynamic random access memory (DRAM) that operate synchronously with an external clock signal, such as a system clock signal. The input and output data of an SDRAM are synchronized to an active edge of the system clock signal. Double data rate (DDR) SDRAMs are faster memory devices that provide twice the operating speed of a conventional SDRAM. DDR SDRAMs allow data transfers on both the rising and falling edges of the system clock signal. DDR SDRAMs are typically used in a multicore system.
An SDRAM or DDR SDRAM comprises a set of memory arrays (also called banks). Each memory array comprises data elements organized into rows and columns. Each of the data elements in a row is addressable by a column address, and is typically a data word. A row is also called a page. Currently, in a SDRAM or DDR SDRAM, only one row can be open at a time. Once the content of an open row is latched in a row data buffer, subsequent memory requests to different column addresses in the open row can be serviced quickly from the row data buffer. Such a memory access is termed a row hit. If a different row is requested and the different row needs to be open, the memory access is termed a row miss. For row hits, only the row data buffer is utilized, and no access is necessary to the memory array.
SDRAMs or DDR SDRAM are typically used in a multicore system. A multicore system comprises a plurality of processors. The processors typically request memory access with diverse memory access patterns. Due to the diverse memory access patterns of the requestors, the fixed row size in an SDRAM or DDR SDRAM may result in sub-optimal power or sub-optimal performance of the SDRAM or DDR SDRAM.
Using a large row size may increase the number of row hits in general, but would result in increase of power consumption in opening a row. Using a small row size may reduce the power consumption in opening a row, but may result in poor performance because there will be fewer row hits for requestors with high access locality.